1. Field of the Invention
The present invention relates generally to computer bus systems, and more particularly, to methods and systems for increasing the data throughput of SCSI bus systems by frequency and/or phase modulating the data transmitted via the bus.
2. Description of the Related Art
A typical computer system may include a computer and peripheral devices such as, for example, storage devices that are interconnected by data buses. For the computer to transfer data to and from the storage device, an input and output connected by differential drivers may be utilized. Within a computer system, it is often desirable to connect a variety of peripherals to the system bus of the computer itself for communication with the central processing unit and other devices connected to the computer. A variety of bus types may be used for this purpose.
To access and control certain types of peripheral devices connected to a computer system, the computer generally utilizes host adapter cards (or controllers) attached to the computer's internal bus. The computer may also have peripheral device controllers built into the motherboard. These device controllers coordinate and manage the data communication to and from the peripheral devices through the various computer busses included in the computer. Device controllers can include a video display adapter, an integrated drive electronics (IDE) controller, a small computer system interface (SCSI) controller, or other similar cards or chips, which control peripheral devices.
Device controllers can communicate with the peripheral devices through one or more busses connecting the computer with the peripheral devices. For example, by use of software device drivers, a host computer can instruct a SCSI chip within the SCSI controller to manage a specific peripheral device and control the data transfer between the peripheral device and the host computer. Therefore, it is important to have optimum throughput through a bus so controllers and peripheral devices may communicate with each other in an optimum manner.
FIG. 1A illustrates an example of a computer system 10. The computer system 10 includes a computer 12, a disk drive 14, a tape drive 16, and any number of other peripherals 18 such as card reader units, voice input/output, displays, video input/output, scanners, etc. The computer and peripherals in this example are connected via a SCSI bus 20, although a wide variety of other types of buses may also be used.
Any number of computers or hosts may be present in computer system 10 and be connected to SCSI bus 20. Each computer may also contain a variety of hardware and software. By way of example, computer 12 includes a monitor 30, a motherboard 32, a wide variety of processing hardware and software 34 and a SCSI host adapter card (or interface card) 36. Host adapter card 36 provides an interface between the microcomputer bus of computer 12, located on motherboard 32, and SCSI bus 20.
SCSI is a universal interface standard for connecting disks and other high performance peripherals to microcomputers. There are both parallel SCSI and serial SCSI interfaces. While exemplary parallel SCSI interfaces are discussed herein, the concepts and principles taught can also generally be applied to series SCSI interfaces. However, it should be appreciated that computer system 10 is an exemplary system, and other interface standards having characteristics similar to SCSI may also be used in such a computer system.
In one example, SCSI bus 20 is an 8-bit parallel flat cable interface (18 total signals) with handshakes and protocols for handling multiple hosts and multiple peripherals. The parallel flat cable interface has both a synchronous and an asynchronous mode, and has defined software protocols. In the embodiment shown, the SCSI bus uses differential drivers, although SCSI is also available with single wire drivers. SCSI interface cards (such as card 36) plug into most microcomputer buses including VME, Multibus I and II, PCI, ISA, VL, EISA and MCA. In another embodiment, SCSI bus 20 is a 16-bit parallel cable interface (27 total signals). In other embodiments motherboard 32 has SCSI adapter card 36 incorporated into the motherboard itself, and a separate, plug-in adapter card is not needed. SCSI bus 20 is a multi-drop bus typically produced as a flat cable that connects from a computer 12 to any number of peripherals. In this example, disk drive 14, tape drive 16, and other peripherals 18 connect to SCSI bus 20 by tapping into the bus. In other examples, it is also possible for any number of peripherals to be included within computer 12 in which case SCSI bus 20 may also be present inside computer 12.
Disk drive 14 includes the physical disk drive unit 40 and SCSI controller card 42 and other internal cables and device level interfaces (not shown) for enabling the unit to communicate with computer 12. After connecting to disk drive 14, SCSI bus 20 continues on to connect to tape drive 16. Tape drive 16 includes the physical tape drive 50, SCSI controller card 52, and other internal cables and interfaces (not shown) for communicating with computer 12.
In a typical SCSI data transmission system, a transmitter is connected to a receiver by transmission lines. When data is transferred from the transmitter to the receiver, which may happen, for example, when the SCSI controller card 52 transmits data to the disk drive 14, data can be sent where one bit is sent in a clock cycle at given frequency. If a data transmission is double clocked, one bit may be sent per half cycle so that two bits of data may be sent during one full clock cycle. Therefore, at maximum, prior art systems are generally not capable of sending more than 2 bits per full clock cycle. Consequently, at a frequency of, for example 80 MHz, 160 Mbits of data per second may be sent. This severely limits the amount of data throughput that may be transmitted through a bus such as, for example, the SCSI bus 20.
FIG. 1B shows a diagram 50 illustrating a time progression in relation to data transmission in a typical data transmission bus. Double transition clocking, (also referred to as dual edge clocking or double clocking as used herein) can be utilized in data transmission so both the leading edge and the trailing edge of the clocking signal are used to clock a data line sampling. In this example, data sent through a bus is double clocked so two voltage signal levels corresponding to a bit content of “0” and “1” respectively are utilized to transmit data from the transmitter to the receiver. As is well known by one skilled in the art, digital data is transmitted using a single bit “0” or a single bit “1”. In this environment, a signal level voltage of 0 volts corresponds to the bit content of “0” and a signal voltage of 5 volts corresponds to the bit content of “1”. A clock signal 52 is coordinated with digital signal 54 so each of the clock edges initiates a signal level output as shown by data initiation 56 at time t1.
Unfortunately, after a certain frequency is reached, data transmission through a bus is limited due to numerous constraints. For example, a particular bus has a certain max bandwidth with a cut off frequency. Typically, the clock cutoff frequency is 40 MHz, and any frequency beyond 40 MHz is very difficult to utilize. Therefore, even with double clocking, it is very difficult to achieve greater than a raw data transfer rate of 80 Mbytes per second (40 Mbytes per second×2 for double clocking) in SCSI systems. Unfortunately, when the cutoff frequency is reached, the signal becomes so degraded due to increased noise levels that it is extremely difficult if not impossible to tell if the digital signal is transmitting a “0” or a “1”. Consequently, after the certain frequency is reached, data throughput speed is limited and data transmission speeds can be a bottleneck in data processing operations.
In view of the foregoing, what is needed is a new and improved methodology for optimizing data transmission methods by enhancing digital data throughput through a SCSI bus. Such an approach would thereby ensure proper initialization of the computer system.